<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow-IPC: session/app.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow-IPC<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow-IPC project: Public API.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_938858dd290fe54e59e3500689c41d32.html">session</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">app.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceipc"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc.html">ipc</a></td></tr>
<tr class="memdesc:namespaceipc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Catch-all namespace for the Flow-IPC project: A library/API in modern C++17 providing high-performance communication between processes. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespaceipc_1_1session"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc_1_1session.html">ipc::session</a></td></tr>
<tr class="memdesc:namespaceipc_1_1session"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flow-IPC module providing the broad lifecycle and shared-resource organization &ndash; via the <em>session</em> concept &ndash; in such a way as to make it possible for a given pair of processes A and B to set up <a class="el" href="namespaceipc_1_1transport.html" title="Flow-IPC module providing transmission of structured messages and/or low-level blobs (and more) betwe...">ipc::transport</a> structured- or unstructured-message channels for general IPC, as well as to share data in SHared Memory (SHM). <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0eac87b284d50832334d819a8877cbaa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc_1_1session.html#a0eac87b284d50832334d819a8877cbaa">ipc::session::ensure_resource_owner_is_app</a> (flow::log::Logger *logger_ptr, const fs::path &amp;path, const App &amp;app, Error_code *err_code=0)</td></tr>
<tr class="memdesc:a0eac87b284d50832334d819a8877cbaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Utility, used internally but exposed in public API in case it is of general use, that checks that the owner of the given resource (at the supplied file system path) is as specified in the given <a class="el" href="structipc_1_1session_1_1App.html" title="A description of an application in this ipc::session inter-process communication universe.">App</a> (<a class="el" href="structipc_1_1session_1_1App.html#a9e32297579603f2d96616976474d0246" title="The application must run as this user ID (UID). Files and other shared resources shall have this owne...">App::m_user_id</a> et al).  <a href="namespaceipc_1_1session.html#a0eac87b284d50832334d819a8877cbaa">More...</a><br /></td></tr>
<tr class="separator:a0eac87b284d50832334d819a8877cbaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7f0052fa0537c3696063693644bcff8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc_1_1session.html#ac7f0052fa0537c3696063693644bcff8">ipc::session::ensure_resource_owner_is_app</a> (flow::log::Logger *logger_ptr, util::Native_handle handle, const App &amp;app, Error_code *err_code=0)</td></tr>
<tr class="memdesc:ac7f0052fa0537c3696063693644bcff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to the other <a class="el" href="namespaceipc_1_1session.html#a0eac87b284d50832334d819a8877cbaa" title="Utility, used internally but exposed in public API in case it is of general use, that checks that the...">ensure_resource_owner_is_app()</a> overload but operates on a pre-opened <code>Native_handle</code> (a/k/a handle, socket, file descriptor) to the resource in question.  <a href="namespaceipc_1_1session.html#ac7f0052fa0537c3696063693644bcff8">More...</a><br /></td></tr>
<tr class="separator:ac7f0052fa0537c3696063693644bcff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b2f9a90ac9cc5098d9b90e7f547c97e"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc_1_1session.html#a6b2f9a90ac9cc5098d9b90e7f547c97e">ipc::session::operator&lt;&lt;</a> (std::ostream &amp;os, const App &amp;val)</td></tr>
<tr class="memdesc:a6b2f9a90ac9cc5098d9b90e7f547c97e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code><a class="el" href="structipc_1_1session_1_1App.html" title="A description of an application in this ipc::session inter-process communication universe.">App</a></code> to the given <code>ostream</code>.  <a href="namespaceipc_1_1session.html#a6b2f9a90ac9cc5098d9b90e7f547c97e">More...</a><br /></td></tr>
<tr class="separator:a6b2f9a90ac9cc5098d9b90e7f547c97e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e786447d51449f1249c10e127ab10e2"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc_1_1session.html#a0e786447d51449f1249c10e127ab10e2">ipc::session::operator&lt;&lt;</a> (std::ostream &amp;os, const Client_app &amp;val)</td></tr>
<tr class="memdesc:a0e786447d51449f1249c10e127ab10e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code>Client_appp</code> to the given <code>ostream</code>.  <a href="namespaceipc_1_1session.html#a0e786447d51449f1249c10e127ab10e2">More...</a><br /></td></tr>
<tr class="separator:a0e786447d51449f1249c10e127ab10e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34a03a25908100446b3eca2e8dca61fe"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceipc_1_1session.html#a34a03a25908100446b3eca2e8dca61fe">ipc::session::operator&lt;&lt;</a> (std::ostream &amp;os, const Server_app &amp;val)</td></tr>
<tr class="memdesc:a34a03a25908100446b3eca2e8dca61fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the given <code><a class="el" href="structipc_1_1session_1_1Server__app.html" title="An App that is used as a server in at least one client-server IPC split.">Server_app</a></code> to the given <code>ostream</code>.  <a href="namespaceipc_1_1session.html#a34a03a25908100446b3eca2e8dca61fe">More...</a><br /></td></tr>
<tr class="separator:a34a03a25908100446b3eca2e8dca61fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 11 2025 20:02:23 for Flow-IPC by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
